Bar code scanners typically operate by using a motor and pattern mirrors to scan a light beam across a label surface and measuring the reflected light. The light beam is generated by a laser, usually a laser diode, and associated optics. The reflected light returns along the incident path and is focused onto a photodetector. The photodetector converts this collected light energy into an electrical signal. This electrical signal is processed by analog electronics, converted to a digital signal, and further processed by digital electronics, usually including a processor and associated firmware.
The processor receives a stream of label data including whatever has passed within the range of the laser or light beam, including complete and partial data. The processor, under control of programming typically stored in firmware, attempts to piece together partial data or bar code fragments ("partials"), ignore multiple reads of the same item, and perform other tasks. The information received can be ambiguous and otherwise difficult to interpret, for a number of reasons. For example, there may be several items in the scan zone or even several identical items at one time. Typically, the firmware avoids a multiple read problem by requiring a relatively long delay between good reads of identical items. This reduces scanning throughput, and is therefore presently a necessary but undesirable solution.
A better solution would be to provide the processor with knowledge of a label's or partial's location. This would allow the processor to determine, for example, if two recovered labels were on the same or different items. It would also allow for the possibility of improved partial reconstruction, since the processor would be aware that recovered partials were or were not adjacent to each other. Thus, it will be recognized that it will be highly advantageous to provide methods and apparatus for determining bar code label location information as a label is being scanned. A number of issues have hindered progress on collecting such information as discussed below.